package com.hsgene.consumables.persistence;

import com.hsgene.consumables.domain.v1.GeneticGoodsApply;
import com.hsgene.consumables.domain.v1.GeneticGoodsApplyHistory;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 耗材申领历史Repository
 *
 * @author wangbing
 * @version 1.0, 2018/9/17
 */
public interface GoodsApplyHistoryRepository {

    /**
     * 获取地服关于goodsId的最新申领信息
     *
     * @param groundServantId 地服id
     * @param goodsId 耗材id
     * @return 申领历史信息
     */
    GeneticGoodsApplyHistory getLatestHistory(
            @Param("groundServantId") String groundServantId, @Param("goodsId") String goodsId);

    /**
     * 批量保存耗材申领历史信息
     *
     * @param histories 耗材申领历史信息
     */
    void saveBatch(@Param("histories") List<GeneticGoodsApplyHistory> histories);

    /**
     * 查询地服拥有的耗材使用信息
     *
     * @param groundServantId 地服id
     * @return 耗材使用信息
     */
    List<GeneticGoodsApplyHistory> queryServantPerGoodsHistory(@Param("groundServantId") String groundServantId);

    /**
     * 根据历史的主键查找apply
     * @param id
     * @return
     */
    GeneticGoodsApply getApplyByHistory(String id);

    /**
     * 根据历史的主键查找applyHistory
     * @return
     * @param id
     */
    GeneticGoodsApplyHistory getApplyHistoryByHistoryId(String id);

    /**
     * 批量修改耗材申请历史信息
     * @param historiesUpdate
     */
    void updateBatch(@Param("histories") List<GeneticGoodsApplyHistory> historiesUpdate);

    /**
     * 根据ids批量删除历史
     * @param deleteDetailIds
     */
    void deleteByids(String[] deleteDetailIds);

    /**
     * 根据历史ids查历史
     * @param split
     * @return
     */
    List<GeneticGoodsApplyHistory> getApplyByHistoryIds(String[] split);
}
